package cn.edu.zafu.bigdata.XuShuXin.Exp1112;

import java.io.*;

/**
 * @author: aluvfy
 * @description:
 *
 * 题目2：写入并读取文本文件
 * 描述：
 * 编写一个程序，将用户输入的文本保存到一个文件中（files目录下的学号文本文件，如files/2022010101.txt），然后读取并显示文件的内容。
 * 具体要求：
 * 写入文件：创建一个方法writeToFile(String fileName, String content)，将用户输入的文本写入到指定的文件中。
 *
 * 读取文件：创建一个方法readFromFile(String fileName)，读取文件内容并将其打印到控制台。
 *
 * 测试：在main方法中，提示用户输入文本，将其写入文件，然后读取并显示文件内容。
 * @date: 2024/11/12 10:45
 */
public class WriteReadFile_xsx {
    public static void main(String[] args) throws Exception {
        String fileName = "files/202211080124.txt";
        String content = "Hello, World, Xu Shuxin!";
        writeToFile(fileName, content);
        System.out.println("文件写入成功！");
        System.out.println("文件读取中...");
        readFromFile(fileName);
    }

    public static void writeToFile(String fileName, String content) {
        File file = new File(fileName);
        // 确保目录存在
        file.getParentFile().mkdirs();
        try (BufferedWriter writer = new BufferedWriter(new FileWriter(file))) {
            writer.write(content);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void readFromFile(String fileName) {
        File file = new File(fileName);
        try (FileReader reader = new FileReader(file)) {
            char[] buffer = new char[1024];
            int length;
            while ((length = reader.read(buffer)) > 0) {
                System.out.print(new String(buffer, 0, length));
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}
